package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excels;
import com.ruoyi.common.core.domain.entity.SysDept;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 人员基本信息对象 sys_person
 * 
 * @author ruoyi
 * @date 2024-07-12
 */
public class SysPerson extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**  */
    private Long personId;

    /** 姓名 */
    @Excel(name = "姓名")
    private String name;

    /** 用户登录名 */
    @Excel(name = "用户登录名")
    private String userName;

    /** 上传头像 */
    @Excel(name = "上传头像")
    private String headPhoto;

    /** 员工编号 */
    @Excel(name = "员工编号")
    private String employeeId;

    /** 职级 */
    @Excel(name = "职级")
    private Long rankId;


    /** 岗位对象 */
    @Excel(name = "岗位名称", targetAttr = "postName", type = Excel.Type.EXPORT)
    private SysPost post;

    /** 身份证号 */
    @Excel(name = "身份证号")
    private String identityCard;

    /** 曾用名 */
    @Excel(name = "曾用名")
    private String formerName;

    /** 姓别 */
    @Excel(name = "性别")
    private String sex;

    /** 出生年月日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生年月日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthDate;

    /** 民族 */
    @Excel(name = "民族")
    private String nation;

    /** 籍贯 */
    @Excel(name = "籍贯")
    private String nativePlace;

    /** 政治面貌 */
    @Excel(name = "政治面貌")
    private String politicsStatus;

    /** 健康状况 */
    @Excel(name = "健康状况")
    private String healthStatus;

    /** 血型 */
    @Excel(name = "血型")
    private String bloodType;

    /** 入党年月日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入党年月日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date joinPartyDate;

    /** 婚姻状况 */
    @Excel(name = "婚姻状况")
    private String marriageStatus;

    /** 结（离）婚日期 */
    @Excel(name = "结（离）婚日期", readConverterExp = "离=")
    private Date marDirDate;

    /** 现工作单位 */
    @Excel(name = "现工作单位")
    private String currentEmployer;

    /** 原工作单位 */
    @Excel(name = "原工作单位")
    private String originalEmployer;

    /** 离职原因 */
    @Excel(name = "离职原因")
    private String leaveReason;

    /** 参加工作年月日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "参加工作年月日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date employmentDate;

    /** 进入工作年月日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "进入工作年月日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date enterWorkDate;

    /** 进入三周年月日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "进入三周年月日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date enterThreeworks;

    /** 岗位性质 */
    @Excel(name = "岗位性质")
    private String jobNature;

    /** 人员类型 */
    @Excel(name = "人员类型")
    private String personType;

    /** 劳动关系 */
    @Excel(name = "劳动关系")
    private String laborRelation;

    /** 专业技术职务（职称） */
    @Excel(name = "专业技术职务", readConverterExp = "职=称")
    private String professionTitle;

    /** 专业技术职务（职称）任职时间 */
    @Excel(name = "专业技术职务", readConverterExp = "职=称")
    private Date profTitleTenure;

    /** 现工作岗位 */
    @Excel(name = "现工作岗位")
    private String currentPosition;

    /** 现任职时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "现任职时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date currentTenure;

    /** 家庭住址 */
    @Excel(name = "家庭住址")
    private String homeAddress;

    /** 邮政编码 */
    @Excel(name = "邮政编码")
    private String postalCode;

    /** 家庭电话 */
    @Excel(name = "家庭电话")
    private String homeTelephone;

    /** 办公电话 */
    @Excel(name = "办公电话")
    private String officeTelephone;

    /** 移动电话 */
    @Excel(name = "移动电话")
    private String mobilePhone;

    /** 电子邮件 */
    @Excel(name = "电子邮件")
    private String email;

    /** 户口性质 */
    @Excel(name = "户口性质")
    private String householdNature;

    /** 户口所在地 */
    @Excel(name = "户口所在地")
    private String householdRegistration;

    /** 出生地 */
    @Excel(name = "出生地")
    private String birthPlace;

    /** 兴趣爱好 */
    @Excel(name = "兴趣爱好")
    private String hobby;

    /** 懂何种外语 */
    @Excel(name = "懂何种外语")
    private String knowForeign;

    /** 外语证书名称 */
    @Excel(name = "外语证书名称")
    private String foreignCertificate;

    /** 熟练程度 */
    @Excel(name = "熟练程度")
    private String proficiency;

    /** 证书编码 */
    @Excel(name = "证书编码")
    private String certificateCode;

    public SysPerson(){}
    public SysPerson(Long personId){this.personId = personId;}
    public void setPersonId(Long personId) 
    {
        this.personId = personId;
    }

    public Long getPersonId() 
    {
        return personId;
    }
    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }
    public void setUserName(String userName) 
    {
        this.userName = userName;
    }

    public String getUserName() 
    {
        return userName;
    }
    public void setHeadPhoto(String headPhoto) 
    {
        this.headPhoto = headPhoto;
    }

    public String getHeadPhoto() 
    {
        return headPhoto;
    }
    public void setEmployeeId(String employeeId) 
    {
        this.employeeId = employeeId;
    }

    public String getEmployeeId() 
    {
        return employeeId;
    }
    public void setRankId(Long rankId)
    {
        this.rankId = rankId;
    }

    public Long getRankId()
    {
        return rankId;
    }
    public void setIdentityCard(String identityCard) 
    {
        this.identityCard = identityCard;
    }

    public String getIdentityCard() 
    {
        return identityCard;
    }
    public void setFormerName(String formerName) 
    {
        this.formerName = formerName;
    }

    public String getFormerName() 
    {
        return formerName;
    }
    public void setSex(String sex) 
    {
        this.sex = sex;
    }

    public String getSex() 
    {
        return sex;
    }
    public void setBirthDate(Date birthDate) 
    {
        this.birthDate = birthDate;
    }

    public Date getBirthDate() 
    {
        return birthDate;
    }
    public void setNation(String nation) 
    {
        this.nation = nation;
    }

    public String getNation() 
    {
        return nation;
    }
    public void setNativePlace(String nativePlace) 
    {
        this.nativePlace = nativePlace;
    }

    public String getNativePlace() 
    {
        return nativePlace;
    }
    public void setPoliticsStatus(String politicsStatus) 
    {
        this.politicsStatus = politicsStatus;
    }

    public String getPoliticsStatus() 
    {
        return politicsStatus;
    }
    public void setHealthStatus(String healthStatus) 
    {
        this.healthStatus = healthStatus;
    }

    public String getHealthStatus() 
    {
        return healthStatus;
    }
    public void setBloodType(String bloodType) 
    {
        this.bloodType = bloodType;
    }

    public String getBloodType() 
    {
        return bloodType;
    }
    public void setJoinPartyDate(Date joinPartyDate) 
    {
        this.joinPartyDate = joinPartyDate;
    }

    public Date getJoinPartyDate() 
    {
        return joinPartyDate;
    }
    public void setMarriageStatus(String marriageStatus) 
    {
        this.marriageStatus = marriageStatus;
    }

    public String getMarriageStatus() 
    {
        return marriageStatus;
    }
    public void setMarDirDate(Date marDirDate) 
    {
        this.marDirDate = marDirDate;
    }

    public Date getMarDirDate() 
    {
        return marDirDate;
    }
    public void setCurrentEmployer(String currentEmployer) 
    {
        this.currentEmployer = currentEmployer;
    }

    public String getCurrentEmployer() 
    {
        return currentEmployer;
    }
    public void setOriginalEmployer(String originalEmployer) 
    {
        this.originalEmployer = originalEmployer;
    }

    public String getOriginalEmployer() 
    {
        return originalEmployer;
    }
    public void setLeaveReason(String leaveReason) 
    {
        this.leaveReason = leaveReason;
    }

    public String getLeaveReason() 
    {
        return leaveReason;
    }
    public void setEmploymentDate(Date employmentDate) 
    {
        this.employmentDate = employmentDate;
    }

    public Date getEmploymentDate() 
    {
        return employmentDate;
    }
    public void setEnterWorkDate(Date enterWorkDate) 
    {
        this.enterWorkDate = enterWorkDate;
    }

    public Date getEnterWorkDate() 
    {
        return enterWorkDate;
    }
    public void setEnterThreeworks(Date enterThreeworks) 
    {
        this.enterThreeworks = enterThreeworks;
    }

    public Date getEnterThreeworks() 
    {
        return enterThreeworks;
    }
    public void setJobNature(String jobNature) 
    {
        this.jobNature = jobNature;
    }

    public String getJobNature() 
    {
        return jobNature;
    }
    public void setPersonType(String personType) 
    {
        this.personType = personType;
    }

    public String getPersonType() 
    {
        return personType;
    }
    public void setLaborRelation(String laborRelation) 
    {
        this.laborRelation = laborRelation;
    }

    public String getLaborRelation() 
    {
        return laborRelation;
    }
    public void setProfessionTitle(String professionTitle) 
    {
        this.professionTitle = professionTitle;
    }

    public String getProfessionTitle() 
    {
        return professionTitle;
    }
    public void setProfTitleTenure(Date profTitleTenure) 
    {
        this.profTitleTenure = profTitleTenure;
    }

    public Date getProfTitleTenure() 
    {
        return profTitleTenure;
    }
    public void setCurrentPosition(String currentPosition) 
    {
        this.currentPosition = currentPosition;
    }

    public String getCurrentPosition() 
    {
        return currentPosition;
    }
    public void setCurrentTenure(Date currentTenure) 
    {
        this.currentTenure = currentTenure;
    }

    public Date getCurrentTenure() 
    {
        return currentTenure;
    }
    public void setHomeAddress(String homeAddress) 
    {
        this.homeAddress = homeAddress;
    }

    public String getHomeAddress() 
    {
        return homeAddress;
    }
    public void setPostalCode(String postalCode) 
    {
        this.postalCode = postalCode;
    }

    public String getPostalCode() 
    {
        return postalCode;
    }
    public void setHomeTelephone(String homeTelephone) 
    {
        this.homeTelephone = homeTelephone;
    }

    public String getHomeTelephone() 
    {
        return homeTelephone;
    }
    public void setOfficeTelephone(String officeTelephone) 
    {
        this.officeTelephone = officeTelephone;
    }

    public String getOfficeTelephone() 
    {
        return officeTelephone;
    }
    public void setMobilePhone(String mobilePhone) 
    {
        this.mobilePhone = mobilePhone;
    }

    public String getMobilePhone() 
    {
        return mobilePhone;
    }
    public void setEmail(String email) 
    {
        this.email = email;
    }

    public String getEmail() 
    {
        return email;
    }
    public void setHouseholdNature(String householdNature) 
    {
        this.householdNature = householdNature;
    }

    public String getHouseholdNature() 
    {
        return householdNature;
    }
    public void setHouseholdRegistration(String householdRegistration) 
    {
        this.householdRegistration = householdRegistration;
    }

    public String getHouseholdRegistration() 
    {
        return householdRegistration;
    }
    public void setBirthPlace(String birthPlace) 
    {
        this.birthPlace = birthPlace;
    }

    public String getBirthPlace() 
    {
        return birthPlace;
    }
    public void setHobby(String hobby) 
    {
        this.hobby = hobby;
    }

    public String getHobby() 
    {
        return hobby;
    }
    public void setKnowForeign(String knowForeign) 
    {
        this.knowForeign = knowForeign;
    }

    public String getKnowForeign() 
    {
        return knowForeign;
    }
    public void setForeignCertificate(String foreignCertificate) 
    {
        this.foreignCertificate = foreignCertificate;
    }

    public String getForeignCertificate() 
    {
        return foreignCertificate;
    }
    public void setProficiency(String proficiency)
    {
        this.proficiency = proficiency;
    }

    public String getProficiency() {
        return proficiency;
    }
    public void setCertificateCode(String certificateCode) {
        this.certificateCode = certificateCode;
    }

    public String getCertificateCode() {
        return certificateCode;
    }
    public void setPost(SysPost post) {
        this.post = post;
    }

    public SysPost getPost() {
        return post;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("personId", getPersonId())
            .append("name", getName())
            .append("userName", getUserName())
            .append("headPhoto", getHeadPhoto())
            .append("employeeId", getEmployeeId())
            .append("rankId", getRankId())
            .append("identityCard", getIdentityCard())
            .append("formerName", getFormerName())
            .append("sex", getSex())
            .append("birthDate", getBirthDate())
            .append("nation", getNation())
            .append("nativePlace", getNativePlace())
            .append("politicsStatus", getPoliticsStatus())
            .append("healthStatus", getHealthStatus())
            .append("bloodType", getBloodType())
            .append("joinPartyDate", getJoinPartyDate())
            .append("marriageStatus", getMarriageStatus())
            .append("marDirDate", getMarDirDate())
            .append("currentEmployer", getCurrentEmployer())
            .append("originalEmployer", getOriginalEmployer())
            .append("leaveReason", getLeaveReason())
            .append("employmentDate", getEmploymentDate())
            .append("enterWorkDate", getEnterWorkDate())
            .append("enterThreeworks", getEnterThreeworks())
            .append("jobNature", getJobNature())
            .append("personType", getPersonType())
            .append("laborRelation", getLaborRelation())
            .append("professionTitle", getProfessionTitle())
            .append("profTitleTenure", getProfTitleTenure())
            .append("currentPosition", getCurrentPosition())
            .append("currentTenure", getCurrentTenure())
            .append("homeAddress", getHomeAddress())
            .append("postalCode", getPostalCode())
            .append("homeTelephone", getHomeTelephone())
            .append("officeTelephone", getOfficeTelephone())
            .append("mobilePhone", getMobilePhone())
            .append("email", getEmail())
            .append("householdNature", getHouseholdNature())
            .append("householdRegistration", getHouseholdRegistration())
            .append("birthPlace", getBirthPlace())
            .append("hobby", getHobby())
            .append("knowForeign", getKnowForeign())
            .append("foreignCertificate", getForeignCertificate())
            .append("proficiency", getProficiency())
            .append("certificateCode", getCertificateCode())
            .append("post", getPost())
            .toString();
    }
}
